#!/usr/bin/env python3
"""
FMCW雷达系统主控制脚本
专注于信号发射和IQ数据采集的简化版本
"""

import sys
import os
from pathlib import Path

# 添加src目录到Python路径
sys.path.insert(0, str(Path(__file__).parent / 'src'))

from src.fmcw_radar import FMCWRadarSystem
from src.logger import Logger


def check_config_file(config_path):
    """检查配置文件是否存在"""
    config_file = Path(config_path)
    if not config_file.exists():
        print(f"错误: 配置文件不存在: {config_path}")
        print("请检查配置文件路径或创建配置文件")
        return False
    return True


def main():
    """主函数 - 简化版本，只执行默认的时序控制测试"""
    
    # 配置文件路径
    config_path = 'config/config.json'
    
    # 设置日志记录
    logger = Logger("main", {
        "level": "INFO",
        "file": "./logs/fmcw_radar.log"
    })
    
    # 检查配置文件
    if not check_config_file(config_path):
        sys.exit(1)
    
    print("=" * 60)
    print("FMCW雷达系统 - 简化版本")
    print("功能: 信号发射 + IQ数据采集")
    print("=" * 60)
    print(f"配置文件: {config_path}")
    print("=" * 60)
    
    # 创建FMCW雷达系统
    try:
        radar_system = FMCWRadarSystem(config_path)
        logger.info("FMCW雷达系统已创建")
    except Exception as e:
        logger.error(f"创建FMCW雷达系统失败: {e}")
        sys.exit(1)
    
    # 执行完整的时序控制测试序列
    try:
        print("\n开始执行FMCW雷达测试序列...")
        print("执行流程:")
        print("1. 系统初始化和仪器连接")
        print("2. 生成三角波FMCW信号")
        print("3. 配置频谱仪触发采集")
        print("4. 时序控制同步")
        print("5. IQ数据采集")
        print("6. 数据保存")
        print()
        
        # 运行时序控制序列（使用默认参数）
        success = radar_system.run_complete_sequence_with_timing()
        
        if success:
            print("\n" + "=" * 60)
            print("✓ FMCW雷达测试序列成功完成")
            print("=" * 60)
        else:
            print("\n" + "=" * 60)
            print("✗ FMCW雷达测试序列失败")
            print("=" * 60)
        
        # 清理系统资源
        radar_system.cleanup()
        
        # 根据结果退出
        sys.exit(0 if success else 1)
        
    except KeyboardInterrupt:
        print("\n用户中断操作")
        radar_system.cleanup()
        sys.exit(1)
        
    except Exception as e:
        logger.error(f"程序执行失败: {e}")
        radar_system.cleanup()
        sys.exit(1)


if __name__ == "__main__":
    main()